package com.gym.controller.action.admin;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.gym.controller.form.admin.InsertTrainerForm;
import com.gym.model.dao.ConnessioneException;
import com.gym.model.dao.DAOTrainer;
import com.gym.model.dao.DatoNonTrovatoException;
import com.gym.model.dao.MetodoDaoException;
import com.gym.model.entity.Trainer;

public class DeleteTrainer extends Action{

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
	 {
		InsertTrainerForm f = (InsertTrainerForm) form;
		
		int id = Integer.parseInt(request.getParameter("id")); 
		
		try {
			DAOTrainer dao = new DAOTrainer();
			if(dao.trainerHasCourse(id)==0) //bisogna verificare che il trainer non abbia corsi attivi, nel caso in cui esistono bisogna indicare prima il sostituto
			{
				Trainer TrainerCancellato = dao.delete(id);
				request.getSession().setAttribute("TrainerCancellato", TrainerCancellato);
				return mapping.findForward("success");
			}
			request.setAttribute("messaggio", "scegli prima un sostituto e poi ripeti l'operazione");
			request.setAttribute("feedback", "ATTENZIONE ALCUNI CORSI SONO SENZA ISTRUTTORE");
			return mapping.findForward("failureSost");		
			
		} catch (ConnessioneException | MetodoDaoException | DatoNonTrovatoException e) {
			request.setAttribute("error", e.getMessage());
			return mapping.findForward("failure");
		}
		
	}

}
